CORE-V09
========

Si tratta di
- una restful api
- una webapp
scritte in Laravel 9
che usano uno stack docker che comprende:
- postgresql (15.3)
- php-fpm (8.2)
- nginx (1.25.0)
La webapp (CoreBg) usa la api (CoreApi) come interfaccia da e verso il database.
CoreApi è completa.
CoreBg, al contrario, è parzialmente implementata (WorkInProgress)
L'unica risorsa completamente implementata è Users.
Questa risorsa funge da esempio per implementare il resto.
Sia CoreApi che CoreBg supporta 3 locales
- Italiano
- Inglese Americano
- Inglese Britannico
A seconda del locale sono configurati formati diversi di:
- time
- data
- datetime
Tutti i settaggi di default per CoreApi sono nel file:
  core-v09-api/config/coreapi.php
Alcuni dei settaggi si possono sovrascrivere nel file
  core-v09-api/.env
Nel dettaglio
- DAYS_TOKEN_EXPIRE
- DAYS_REFRESH_TOKEN_EXPIRE
- INDEX_LIMIT
- FILTER_ACTIVE
- REGISTERED_USER_CONFIRMATION_EMAIL
- REGISTERED_USER_ROLE
- CREATED_USER_ROLE
- LOG_LEVEL
Per CoreBg, invece, i settaggi sono nel file
  core-v09-backend-gui/.env
I settaggi personalizzabili sono
- APP_LOCALE
- APP_FALLBACK_LOCALE
- LOG_LEVEL
- DEFAULT_INDEX_LIMIT
Nella maschera di login si può scegliere il locale da usare in quella sessione.
Nei dati di test sono caricati utenti con 3 profili con permessi diversi
- admin (lettura, scrittura, cancellazione)
- editor (lettura, scrittura)
- reader (lettura)
I menù e le icone di inserimento, modifica, visualizza, cancella sono dinamiche ai permessi del profilo.

PRE REQUISITI
=============
Host linux
git, docker, docker compose installati
VSCode con estensione devcontainer

INSTALLAZIONE
=============
Clonare il repository
  git clone https://notabug.org/valeriopincini/core-v09.git
Entrare nella cartella
  cd core-v09
Passare al branch devcontainer
  git checkout devcontainer
Aprire la cartella in VSCode
Ricreare i contaniers con il comando "Riapri nel container"
Aprire una finestra di terminale
Entrare nella directory di CoreApi
  cd core-v09-api
Installare le dipendenze
  composer install
Creare le tabelle
  php artisan migrate:refresh
Caricare dati di test
  php artisan db:seed
Eseguire tutti gli unit test per validare installazione
  vendor/bin/phpunit
Aggiungere queste due righe al file /etc/hosts:
  127.0.0.1 coreapi.test
  127.0.0.1 corebg.test
Aprire un browser e andare all'url
  http://corebg.test:81
Fare login
